<?php

declare(strict_types=1);

namespace DreamCat\StateMachine\Popo\Define;

use DreamCat\StateMachine\Enums\TransferType;

/**
 * 状态转移详情
 * @author vijay
 */
abstract class TransferDetail
{
    /** @var TransferType 转移类型 */
    private TransferType $transferType;
    /** @var string 动作标识 */
    private string $actionId;
    /** @var bool 是否主流程 */
    private bool $mainStream;

    /**
     * @return TransferType 转移类型
     */
    public function getTransferType(): TransferType
    {
        return $this->transferType;
    }

    /**
     * @param TransferType $transferType 转移类型
     */
    public function setTransferType(TransferType $transferType): void
    {
        $this->transferType = $transferType;
    }

    /**
     * @return string 动作标识
     */
    public function getActionId(): string
    {
        return $this->actionId;
    }

    /**
     * @param string $actionId 动作标识
     */
    public function setActionId(string $actionId): void
    {
        $this->actionId = $actionId;
    }

    /**
     * @return bool 是否主流程
     */
    public function isMainStream(): bool
    {
        return $this->mainStream;
    }

    /**
     * @param bool $mainStream 是否主流程
     */
    public function setMainStream(bool $mainStream): void
    {
        $this->mainStream = $mainStream;
    }
}

# end of file
